<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>(abstraction-rtos)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="logo.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">(abstraction-rtos)</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__group__abstraction__rtos__threads.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle"><div class="title">Threads</div></div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<p >APIs for creating and working with Threads. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga1e3db7a2b7a64fe9838804f049612d43"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga1e3db7a2b7a64fe9838804f049612d43">cy_thread_entry_fn_t</a>) (<a class="el" href="group__group__abstraction__rtos__port.html#ga38237cfc682f2212e1ae11eb81a594b4">cy_thread_arg_t</a> arg)</td></tr>
<tr class="memdesc:ga1e3db7a2b7a64fe9838804f049612d43"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of a function that is the entry point for a thread.  <a href="group__group__abstraction__rtos__threads.html#ga1e3db7a2b7a64fe9838804f049612d43">More...</a><br /></td></tr>
<tr class="separator:ga1e3db7a2b7a64fe9838804f049612d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gacc555d9fef9df1454dbcc8e3bd3e4ee6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gacc555d9fef9df1454dbcc8e3bd3e4ee6">cy_thread_state_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a19af6e196af4c8cbe3d162f070892877">CY_THREAD_STATE_INACTIVE</a>
, <br />
&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a8efc8355c0ce19bbc62e1e19950afc94">CY_THREAD_STATE_READY</a>
, <br />
&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a2b2a8db515615c92ad655cbb1ee3183e">CY_THREAD_STATE_RUNNING</a>
, <br />
&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a1188aa9968e841190908389b93a28cc2">CY_THREAD_STATE_BLOCKED</a>
, <br />
&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6aa5113cb861c5e7a6b1ee48f9eacf3b87">CY_THREAD_STATE_TERMINATED</a>
, <br />
&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a858524ed8b50486ec25c0949e6c443fd">CY_THREAD_STATE_UNKNOWN</a>
<br />
 }</td></tr>
<tr class="memdesc:gacc555d9fef9df1454dbcc8e3bd3e4ee6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The state a thread can be in.  <a href="group__group__abstraction__rtos__threads.html#gacc555d9fef9df1454dbcc8e3bd3e4ee6">More...</a><br /></td></tr>
<tr class="separator:gacc555d9fef9df1454dbcc8e3bd3e4ee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf0721c9708baff03b7ba01213e3693c5"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gaf0721c9708baff03b7ba01213e3693c5">cy_rtos_thread_create</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *thread, <a class="el" href="group__group__abstraction__rtos__threads.html#ga1e3db7a2b7a64fe9838804f049612d43">cy_thread_entry_fn_t</a> entry_function, const char *name, void *stack, uint32_t stack_size, <a class="el" href="group__group__abstraction__rtos__port.html#ga9f21bb78897c25df019b6e4286ecc7a0">cy_thread_priority_t</a> priority, <a class="el" href="group__group__abstraction__rtos__port.html#ga38237cfc682f2212e1ae11eb81a594b4">cy_thread_arg_t</a> arg)</td></tr>
<tr class="memdesc:gaf0721c9708baff03b7ba01213e3693c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a thread with specific thread argument.  <a href="group__group__abstraction__rtos__threads.html#gaf0721c9708baff03b7ba01213e3693c5">More...</a><br /></td></tr>
<tr class="separator:gaf0721c9708baff03b7ba01213e3693c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafdf08459efae892545782d13b2840ba6"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gafdf08459efae892545782d13b2840ba6">cy_rtos_thread_exit</a> (void)</td></tr>
<tr class="memdesc:gafdf08459efae892545782d13b2840ba6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exit the current thread.  <a href="group__group__abstraction__rtos__threads.html#gafdf08459efae892545782d13b2840ba6">More...</a><br /></td></tr>
<tr class="separator:gafdf08459efae892545782d13b2840ba6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7">cy_rtos_thread_terminate</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *thread)</td></tr>
<tr class="memdesc:ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminates another thread.  <a href="group__group__abstraction__rtos__threads.html#ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7">More...</a><br /></td></tr>
<tr class="separator:ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb5be1db099f0c85ec1156670d34763c"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c">cy_rtos_thread_join</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *thread)</td></tr>
<tr class="memdesc:gabb5be1db099f0c85ec1156670d34763c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for a thread to complete.  <a href="group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c">More...</a><br /></td></tr>
<tr class="separator:gabb5be1db099f0c85ec1156670d34763c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88fcc6b322f83b515d4b049fca54a202"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga88fcc6b322f83b515d4b049fca54a202">cy_rtos_thread_is_running</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *thread, bool *running)</td></tr>
<tr class="memdesc:ga88fcc6b322f83b515d4b049fca54a202"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the thread is running.  <a href="group__group__abstraction__rtos__threads.html#ga88fcc6b322f83b515d4b049fca54a202">More...</a><br /></td></tr>
<tr class="separator:ga88fcc6b322f83b515d4b049fca54a202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab587210336d9a91d51686150577615dd"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gab587210336d9a91d51686150577615dd">cy_rtos_thread_get_state</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *thread, <a class="el" href="group__group__abstraction__rtos__threads.html#gacc555d9fef9df1454dbcc8e3bd3e4ee6">cy_thread_state_t</a> *state)</td></tr>
<tr class="memdesc:gab587210336d9a91d51686150577615dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the state the thread is currently in.  <a href="group__group__abstraction__rtos__threads.html#gab587210336d9a91d51686150577615dd">More...</a><br /></td></tr>
<tr class="separator:gab587210336d9a91d51686150577615dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2db2a0b5c73d1042313d229bf9fde18a"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga2db2a0b5c73d1042313d229bf9fde18a">cy_rtos_thread_get_handle</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *thread)</td></tr>
<tr class="memdesc:ga2db2a0b5c73d1042313d229bf9fde18a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current thread handle.  <a href="group__group__abstraction__rtos__threads.html#ga2db2a0b5c73d1042313d229bf9fde18a">More...</a><br /></td></tr>
<tr class="separator:ga2db2a0b5c73d1042313d229bf9fde18a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga48c657566a9d85d8003c8c8784907c0d"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga48c657566a9d85d8003c8c8784907c0d">cy_rtos_thread_wait_notification</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga141349b315f2266d5e0e8b8566eb608b">cy_time_t</a> timeout_ms)</td></tr>
<tr class="memdesc:ga48c657566a9d85d8003c8c8784907c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend current thread until notification is received.  <a href="group__group__abstraction__rtos__threads.html#ga48c657566a9d85d8003c8c8784907c0d">More...</a><br /></td></tr>
<tr class="separator:ga48c657566a9d85d8003c8c8784907c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa29bd111d0e71594887f83e8a2ef5874"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gaa29bd111d0e71594887f83e8a2ef5874">cy_rtos_thread_set_notification</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *thread)</td></tr>
<tr class="memdesc:gaa29bd111d0e71594887f83e8a2ef5874"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the thread notification for a thread.  <a href="group__group__abstraction__rtos__threads.html#gaa29bd111d0e71594887f83e8a2ef5874">More...</a><br /></td></tr>
<tr class="separator:gaa29bd111d0e71594887f83e8a2ef5874"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga69c4cc657945f9cc8aaf1ee3667fd004"><td class="memItemLeft" align="right" valign="top">cy_rslt_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga69c4cc657945f9cc8aaf1ee3667fd004">cy_rtos_thread_get_name</a> (<a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *thread, const char **thread_name)</td></tr>
<tr class="memdesc:ga69c4cc657945f9cc8aaf1ee3667fd004"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the name of a thread.  <a href="group__group__abstraction__rtos__threads.html#ga69c4cc657945f9cc8aaf1ee3667fd004">More...</a><br /></td></tr>
<tr class="separator:ga69c4cc657945f9cc8aaf1ee3667fd004"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e7b9e7ffe531ff74a9a9cf8ebf18593"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga9e7b9e7ffe531ff74a9a9cf8ebf18593">cy_rtos_create_thread</a>(thread,  entry_function,  name,  stack,  stack_size,  priority,  arg)&#160;&#160;&#160;    <a class="el" href="group__group__abstraction__rtos__threads.html#gaf0721c9708baff03b7ba01213e3693c5">cy_rtos_thread_create</a>(thread, entry_function, name, stack, stack_size, priority, arg)</td></tr>
<tr class="memdesc:ga9e7b9e7ffe531ff74a9a9cf8ebf18593"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a thread with specific thread argument.  <a href="group__group__abstraction__rtos__threads.html#ga9e7b9e7ffe531ff74a9a9cf8ebf18593">More...</a><br /></td></tr>
<tr class="separator:ga9e7b9e7ffe531ff74a9a9cf8ebf18593"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8a7dde2fb560de10e0b5aceac27c0e3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gab8a7dde2fb560de10e0b5aceac27c0e3">cy_rtos_is_thread_running</a>(thread,  running)&#160;&#160;&#160;    <a class="el" href="group__group__abstraction__rtos__threads.html#ga88fcc6b322f83b515d4b049fca54a202">cy_rtos_thread_is_running</a>(thread, running)</td></tr>
<tr class="memdesc:gab8a7dde2fb560de10e0b5aceac27c0e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the thread is running.  <a href="group__group__abstraction__rtos__threads.html#gab8a7dde2fb560de10e0b5aceac27c0e3">More...</a><br /></td></tr>
<tr class="separator:gab8a7dde2fb560de10e0b5aceac27c0e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3455fc6cd006539be342e42c760b6849"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga3455fc6cd006539be342e42c760b6849">cy_rtos_set_thread_notification</a>(thread,  in_isr)&#160;&#160;&#160;    <a class="el" href="group__group__abstraction__rtos__threads.html#gaa29bd111d0e71594887f83e8a2ef5874">cy_rtos_thread_set_notification</a>(thread)</td></tr>
<tr class="memdesc:ga3455fc6cd006539be342e42c760b6849"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the thread notification for a thread.  <a href="group__group__abstraction__rtos__threads.html#ga3455fc6cd006539be342e42c760b6849">More...</a><br /></td></tr>
<tr class="separator:ga3455fc6cd006539be342e42c760b6849"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c74f900aebffdcd84476780e37a175a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga6c74f900aebffdcd84476780e37a175a">cy_rtos_wait_thread_notification</a>(timeout_ms)&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ga48c657566a9d85d8003c8c8784907c0d">cy_rtos_thread_wait_notification</a>(timeout_ms)</td></tr>
<tr class="memdesc:ga6c74f900aebffdcd84476780e37a175a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend current thread until notification is received.  <a href="group__group__abstraction__rtos__threads.html#ga6c74f900aebffdcd84476780e37a175a">More...</a><br /></td></tr>
<tr class="separator:ga6c74f900aebffdcd84476780e37a175a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4b55ac8054378295182c3dbcf3e074e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga4b55ac8054378295182c3dbcf3e074e9">cy_rtos_get_thread_state</a>(thread,  state)&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#gab587210336d9a91d51686150577615dd">cy_rtos_thread_get_state</a>(thread, state)</td></tr>
<tr class="memdesc:ga4b55ac8054378295182c3dbcf3e074e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the state the thread is currently in.  <a href="group__group__abstraction__rtos__threads.html#ga4b55ac8054378295182c3dbcf3e074e9">More...</a><br /></td></tr>
<tr class="separator:ga4b55ac8054378295182c3dbcf3e074e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae23dd3f99a850bb005b39a7236932ba1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gae23dd3f99a850bb005b39a7236932ba1">cy_rtos_join_thread</a>(thread)&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c">cy_rtos_thread_join</a>(thread)</td></tr>
<tr class="memdesc:gae23dd3f99a850bb005b39a7236932ba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for a thread to complete.  <a href="group__group__abstraction__rtos__threads.html#gae23dd3f99a850bb005b39a7236932ba1">More...</a><br /></td></tr>
<tr class="separator:gae23dd3f99a850bb005b39a7236932ba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf720f35084c7c48ddf8ec82b338cc88a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#gaf720f35084c7c48ddf8ec82b338cc88a">cy_rtos_get_thread_handle</a>(thread)&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ga2db2a0b5c73d1042313d229bf9fde18a">cy_rtos_thread_get_handle</a>(thread)</td></tr>
<tr class="memdesc:gaf720f35084c7c48ddf8ec82b338cc88a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current thread handle.  <a href="group__group__abstraction__rtos__threads.html#gaf720f35084c7c48ddf8ec82b338cc88a">More...</a><br /></td></tr>
<tr class="separator:gaf720f35084c7c48ddf8ec82b338cc88a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56c82d11b9d311fde17cc766f73d203d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga56c82d11b9d311fde17cc766f73d203d">cy_rtos_terminate_thread</a>(thread)&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7">cy_rtos_thread_terminate</a>(thread)</td></tr>
<tr class="memdesc:ga56c82d11b9d311fde17cc766f73d203d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminates another thread.  <a href="group__group__abstraction__rtos__threads.html#ga56c82d11b9d311fde17cc766f73d203d">More...</a><br /></td></tr>
<tr class="separator:ga56c82d11b9d311fde17cc766f73d203d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1c017c0618c4b4755b2df2c14ad6115b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__abstraction__rtos__threads.html#ga1c017c0618c4b4755b2df2c14ad6115b">cy_rtos_exit_thread</a>&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#gafdf08459efae892545782d13b2840ba6">cy_rtos_thread_exit</a></td></tr>
<tr class="memdesc:ga1c017c0618c4b4755b2df2c14ad6115b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exit the current thread.  <a href="group__group__abstraction__rtos__threads.html#ga1c017c0618c4b4755b2df2c14ad6115b">More...</a><br /></td></tr>
<tr class="separator:ga1c017c0618c4b4755b2df2c14ad6115b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga9e7b9e7ffe531ff74a9a9cf8ebf18593" name="ga9e7b9e7ffe531ff74a9a9cf8ebf18593"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9e7b9e7ffe531ff74a9a9cf8ebf18593">&#9670;&nbsp;</a></span>cy_rtos_create_thread</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_create_thread</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">thread, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">entry_function, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">name, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stack, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">stack_size, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">priority, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">arg&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;    <a class="el" href="group__group__abstraction__rtos__threads.html#gaf0721c9708baff03b7ba01213e3693c5">cy_rtos_thread_create</a>(thread, entry_function, name, stack, stack_size, priority, arg)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a thread with specific thread argument. </p>
<p >This function is called to startup a new thread. If the thread can exit, it must call <a class="el" href="group__group__abstraction__rtos__threads.html#ga1c017c0618c4b4755b2df2c14ad6115b">cy_rtos_exit_thread()</a> just before doing so. All created threads that can terminate, either by themselves or forcefully by another thread MUST have <a class="el" href="group__group__abstraction__rtos__threads.html#gae23dd3f99a850bb005b39a7236932ba1">cy_rtos_join_thread()</a> called on them by another thread in order to cleanup any resources that might have been allocated for them.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">thread</td><td>Pointer to a variable which will receive the new thread handle </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">entry_function</td><td>Function pointer which points to the main function for the new thread </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>String thread name used for a debugger </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">stack</td><td>The buffer to use for the thread stack. This must be aligned to <a class="el" href="group__group__abstraction__rtos__port.html#ga03f4b97a8323f791fe6b8113bac20610">CY_RTOS_ALIGNMENT_MASK</a> with a size of at least <a class="el" href="group__group__abstraction__rtos__port.html#ga8cb68f0797eec0941d819cb03dee3f8e">CY_RTOS_MIN_STACK_SIZE</a>. If stack is null, cy_rtos_create_thread will allocate a stack from the heap. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">stack_size</td><td>The size of the thread stack in bytes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">priority</td><td>The priority of the thread. Values are operating system specific, but some common priority levels are defined: CY_THREAD_PRIORITY_LOW CY_THREAD_PRIORITY_NORMAL CY_THREAD_PRIORITY_HIGH </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>The argument to pass to the new thread</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread create request. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga516d500bef7d6e6291f08485d0bc003b">CY_RTOS_NO_MEMORY</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="gab8a7dde2fb560de10e0b5aceac27c0e3" name="gab8a7dde2fb560de10e0b5aceac27c0e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab8a7dde2fb560de10e0b5aceac27c0e3">&#9670;&nbsp;</a></span>cy_rtos_is_thread_running</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_is_thread_running</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">thread, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">running&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;    <a class="el" href="group__group__abstraction__rtos__threads.html#ga88fcc6b322f83b515d4b049fca54a202">cy_rtos_thread_is_running</a>(thread, running)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the thread is running. </p>
<p >This function is called to determine if a thread is actively running or not. For information on the thread state, use the <a class="el" href="group__group__abstraction__rtos__threads.html#ga4b55ac8054378295182c3dbcf3e074e9">cy_rtos_get_thread_state()</a> function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the terminated thread to delete </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">running</td><td>Returns true if the thread is running, otherwise false</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the thread running check. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="ga3455fc6cd006539be342e42c760b6849" name="ga3455fc6cd006539be342e42c760b6849"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3455fc6cd006539be342e42c760b6849">&#9670;&nbsp;</a></span>cy_rtos_set_thread_notification</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_set_thread_notification</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">thread, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">in_isr&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;    <a class="el" href="group__group__abstraction__rtos__threads.html#gaa29bd111d0e71594887f83e8a2ef5874">cy_rtos_thread_set_notification</a>(thread)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the thread notification for a thread. </p>
<p >This function sets the thread notification for the target thread. The target thread waiting for the notification to be set will resume from suspended state.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the target thread </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">in_isr</td><td>If true this is being called from within an ISR</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread wait. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga3b106a6fcedd377b05769dbf2b6f97a9">CY_RTOS_BAD_PARAM</a>] </dd></dl>

</div>
</div>
<a id="ga6c74f900aebffdcd84476780e37a175a" name="ga6c74f900aebffdcd84476780e37a175a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6c74f900aebffdcd84476780e37a175a">&#9670;&nbsp;</a></span>cy_rtos_wait_thread_notification</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_wait_thread_notification</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">timeout_ms</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ga48c657566a9d85d8003c8c8784907c0d">cy_rtos_thread_wait_notification</a>(timeout_ms)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Suspend current thread until notification is received. </p>
<p >This function suspends the execution of current thread until it is notified by <a class="el" href="group__group__abstraction__rtos__threads.html#ga3455fc6cd006539be342e42c760b6849">cy_rtos_set_thread_notification</a> from another thread or ISR, or timed out with specify timeout value</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout_ms</td><td>Maximum number of milliseconds to wait Use the <a class="el" href="group__group__abstraction__rtos__common.html#gab31d8535128df9506a4220c2b1f41a60">CY_RTOS_NEVER_TIMEOUT</a> constant to wait forever.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread wait. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#gafc6a1c6f563521d6c5555027d5d7bde8">CY_RTOS_TIMEOUT</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="ga4b55ac8054378295182c3dbcf3e074e9" name="ga4b55ac8054378295182c3dbcf3e074e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4b55ac8054378295182c3dbcf3e074e9">&#9670;&nbsp;</a></span>cy_rtos_get_thread_state</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_get_thread_state</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">thread, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">state&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#gab587210336d9a91d51686150577615dd">cy_rtos_thread_get_state</a>(thread, state)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the state the thread is currently in. </p>
<p >This function is called to determine if a thread is running/blocked/inactive/ready etc.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the terminated thread to delete </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">state</td><td>Returns the state the thread is currently in</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the thread state check. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="gae23dd3f99a850bb005b39a7236932ba1" name="gae23dd3f99a850bb005b39a7236932ba1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae23dd3f99a850bb005b39a7236932ba1">&#9670;&nbsp;</a></span>cy_rtos_join_thread</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_join_thread</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">thread</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c">cy_rtos_thread_join</a>(thread)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Waits for a thread to complete. </p>
<p >This must be called on any thread that can complete to ensure that any resources that were allocated for it are cleaned up.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the thread to wait for</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread join request. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="gaf720f35084c7c48ddf8ec82b338cc88a" name="gaf720f35084c7c48ddf8ec82b338cc88a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf720f35084c7c48ddf8ec82b338cc88a">&#9670;&nbsp;</a></span>cy_rtos_get_thread_handle</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_get_thread_handle</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">thread</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ga2db2a0b5c73d1042313d229bf9fde18a">cy_rtos_thread_get_handle</a>(thread)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get current thread handle. </p>
<p >Returns the unique thread handle of the current running thread.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">thread</td><td>Handle of the current running thread</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread join request. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="ga56c82d11b9d311fde17cc766f73d203d" name="ga56c82d11b9d311fde17cc766f73d203d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga56c82d11b9d311fde17cc766f73d203d">&#9670;&nbsp;</a></span>cy_rtos_terminate_thread</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_terminate_thread</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">thread</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7">cy_rtos_thread_terminate</a>(thread)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Terminates another thread. </p>
<p >This function is called to terminate another thread and reap the resources claimed by the thread. This should be called both when forcibly terminating another thread as well as any time a thread can exit on its own. For some RTOS implementations this is not required as the thread resources are claimed as soon as it exits. In other cases, this must be called to reclaim resources. Threads that are terminated must still be joined (<a class="el" href="group__group__abstraction__rtos__threads.html#gae23dd3f99a850bb005b39a7236932ba1">cy_rtos_join_thread</a>) to ensure their resources are fully cleaned up.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the thread to terminate</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the thread terminate. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="ga1c017c0618c4b4755b2df2c14ad6115b" name="ga1c017c0618c4b4755b2df2c14ad6115b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1c017c0618c4b4755b2df2c14ad6115b">&#9670;&nbsp;</a></span>cy_rtos_exit_thread</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cy_rtos_exit_thread&#160;&#160;&#160;<a class="el" href="group__group__abstraction__rtos__threads.html#gafdf08459efae892545782d13b2840ba6">cy_rtos_thread_exit</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Exit the current thread. </p>
<p >This function is called just before a thread exits. In some cases it is sufficient for a thread to just return to exit, but in other cases, the RTOS must be explicitly signaled. In cases where a return is sufficient, this should be a null funcition. where the RTOS must be signaled, this function should perform that In cases operation. In code using RTOS services, this function should be placed at any at any location where the main thread function will return, exiting the thread. Threads that can exit must still be joined (<a class="el" href="group__group__abstraction__rtos__threads.html#gae23dd3f99a850bb005b39a7236932ba1">cy_rtos_join_thread</a>) to ensure their resources are fully cleaned up.</p>
<dl class="section return"><dt>Returns</dt><dd>The status of thread exit request. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga1e3db7a2b7a64fe9838804f049612d43" name="ga1e3db7a2b7a64fe9838804f049612d43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1e3db7a2b7a64fe9838804f049612d43">&#9670;&nbsp;</a></span>cy_thread_entry_fn_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* cy_thread_entry_fn_t) (<a class="el" href="group__group__abstraction__rtos__port.html#ga38237cfc682f2212e1ae11eb81a594b4">cy_thread_arg_t</a> arg)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The type of a function that is the entry point for a thread. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>the argument passed from the thread create call to the entry function </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gacc555d9fef9df1454dbcc8e3bd3e4ee6" name="gacc555d9fef9df1454dbcc8e3bd3e4ee6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacc555d9fef9df1454dbcc8e3bd3e4ee6">&#9670;&nbsp;</a></span>cy_thread_state_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__abstraction__rtos__threads.html#gacc555d9fef9df1454dbcc8e3bd3e4ee6">cy_thread_state_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The state a thread can be in. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a19af6e196af4c8cbe3d162f070892877" name="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a19af6e196af4c8cbe3d162f070892877"></a>CY_THREAD_STATE_INACTIVE&#160;</td><td class="fielddoc"><p >thread has not started or was terminated but not yet joined </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a8efc8355c0ce19bbc62e1e19950afc94" name="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a8efc8355c0ce19bbc62e1e19950afc94"></a>CY_THREAD_STATE_READY&#160;</td><td class="fielddoc"><p >thread can run, but is not currently </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a2b2a8db515615c92ad655cbb1ee3183e" name="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a2b2a8db515615c92ad655cbb1ee3183e"></a>CY_THREAD_STATE_RUNNING&#160;</td><td class="fielddoc"><p >thread is currently running </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a1188aa9968e841190908389b93a28cc2" name="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a1188aa9968e841190908389b93a28cc2"></a>CY_THREAD_STATE_BLOCKED&#160;</td><td class="fielddoc"><p >thread is blocked waiting for something </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacc555d9fef9df1454dbcc8e3bd3e4ee6aa5113cb861c5e7a6b1ee48f9eacf3b87" name="ggacc555d9fef9df1454dbcc8e3bd3e4ee6aa5113cb861c5e7a6b1ee48f9eacf3b87"></a>CY_THREAD_STATE_TERMINATED&#160;</td><td class="fielddoc"><p >thread has terminated but not freed </p>
</td></tr>
<tr><td class="fieldname"><a id="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a858524ed8b50486ec25c0949e6c443fd" name="ggacc555d9fef9df1454dbcc8e3bd3e4ee6a858524ed8b50486ec25c0949e6c443fd"></a>CY_THREAD_STATE_UNKNOWN&#160;</td><td class="fielddoc"><p >thread is in an unknown state </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gaf0721c9708baff03b7ba01213e3693c5" name="gaf0721c9708baff03b7ba01213e3693c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf0721c9708baff03b7ba01213e3693c5">&#9670;&nbsp;</a></span>cy_rtos_thread_create()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *&#160;</td>
          <td class="paramname"><em>thread</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__threads.html#ga1e3db7a2b7a64fe9838804f049612d43">cy_thread_entry_fn_t</a>&#160;</td>
          <td class="paramname"><em>entry_function</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>stack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>stack_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga9f21bb78897c25df019b6e4286ecc7a0">cy_thread_priority_t</a>&#160;</td>
          <td class="paramname"><em>priority</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga38237cfc682f2212e1ae11eb81a594b4">cy_thread_arg_t</a>&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a thread with specific thread argument. </p>
<p >This function is called to startup a new thread. If the thread can exit, it must call <a class="el" href="group__group__abstraction__rtos__threads.html#gafdf08459efae892545782d13b2840ba6">cy_rtos_thread_exit()</a> just before doing so. All created threads that can terminate, either by themselves or forcefully by another thread MUST have <a class="el" href="group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c">cy_rtos_thread_join()</a> called on them by another thread in order to cleanup any resources that might have been allocated for them.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">thread</td><td>Pointer to a variable which will receive the new thread handle </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">entry_function</td><td>Function pointer which points to the main function for the new thread </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>String thread name used for a debugger </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">stack</td><td>The buffer to use for the thread stack. This must be aligned to <a class="el" href="group__group__abstraction__rtos__port.html#ga03f4b97a8323f791fe6b8113bac20610">CY_RTOS_ALIGNMENT_MASK</a> with a size of at least <a class="el" href="group__group__abstraction__rtos__port.html#ga8cb68f0797eec0941d819cb03dee3f8e">CY_RTOS_MIN_STACK_SIZE</a>. If stack is null, cy_rtos_create_thread will allocate a stack from the heap. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">stack_size</td><td>The size of the thread stack in bytes </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">priority</td><td>The priority of the thread. Values are operating system specific, but some common priority levels are defined: CY_THREAD_PRIORITY_LOW CY_THREAD_PRIORITY_NORMAL CY_THREAD_PRIORITY_HIGH </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">arg</td><td>The argument to pass to the new thread</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread create request. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga516d500bef7d6e6291f08485d0bc003b">CY_RTOS_NO_MEMORY</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="gafdf08459efae892545782d13b2840ba6" name="gafdf08459efae892545782d13b2840ba6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafdf08459efae892545782d13b2840ba6">&#9670;&nbsp;</a></span>cy_rtos_thread_exit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_exit </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Exit the current thread. </p>
<p >This function is called just before a thread exits. In some cases it is sufficient for a thread to just return to exit, but in other cases, the RTOS must be explicitly signaled. In cases where a return is sufficient, this should be a null funcition. where the RTOS must be signaled, this function should perform that In cases operation. In code using RTOS services, this function should be placed at any at any location where the main thread function will return, exiting the thread. Threads that can exit must still be joined (<a class="el" href="group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c">cy_rtos_thread_join</a>) to ensure their resources are fully cleaned up.</p>
<dl class="section return"><dt>Returns</dt><dd>The status of thread exit request. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7" name="ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7">&#9670;&nbsp;</a></span>cy_rtos_thread_terminate()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_terminate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *&#160;</td>
          <td class="paramname"><em>thread</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Terminates another thread. </p>
<p >This function is called to terminate another thread and reap the resources claimed by the thread. This should be called both when forcibly terminating another thread as well as any time a thread can exit on its own. For some RTOS implementations this is not required as the thread resources are claimed as soon as it exits. In other cases, this must be called to reclaim resources. Threads that are terminated must still be joined (<a class="el" href="group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c">cy_rtos_thread_join</a>) to ensure their resources are fully cleaned up.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the thread to terminate</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the thread terminate. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="gabb5be1db099f0c85ec1156670d34763c" name="gabb5be1db099f0c85ec1156670d34763c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabb5be1db099f0c85ec1156670d34763c">&#9670;&nbsp;</a></span>cy_rtos_thread_join()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_join </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *&#160;</td>
          <td class="paramname"><em>thread</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Waits for a thread to complete. </p>
<p >This must be called on any thread that can complete to ensure that any resources that were allocated for it are cleaned up.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the thread to wait for</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread join request. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="ga88fcc6b322f83b515d4b049fca54a202" name="ga88fcc6b322f83b515d4b049fca54a202"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga88fcc6b322f83b515d4b049fca54a202">&#9670;&nbsp;</a></span>cy_rtos_thread_is_running()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_is_running </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *&#160;</td>
          <td class="paramname"><em>thread</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>running</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the thread is running. </p>
<p >This function is called to determine if a thread is actively running or not. For information on the thread state, use the <a class="el" href="group__group__abstraction__rtos__threads.html#gab587210336d9a91d51686150577615dd">cy_rtos_thread_get_state()</a> function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the terminated thread to delete </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">running</td><td>Returns true if the thread is running, otherwise false</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the thread running check. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="gab587210336d9a91d51686150577615dd" name="gab587210336d9a91d51686150577615dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab587210336d9a91d51686150577615dd">&#9670;&nbsp;</a></span>cy_rtos_thread_get_state()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_get_state </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *&#160;</td>
          <td class="paramname"><em>thread</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__threads.html#gacc555d9fef9df1454dbcc8e3bd3e4ee6">cy_thread_state_t</a> *&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the state the thread is currently in. </p>
<p >This function is called to determine if a thread is running/blocked/inactive/ready etc.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the terminated thread to delete </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">state</td><td>Returns the state the thread is currently in</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the thread state check. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="ga2db2a0b5c73d1042313d229bf9fde18a" name="ga2db2a0b5c73d1042313d229bf9fde18a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2db2a0b5c73d1042313d229bf9fde18a">&#9670;&nbsp;</a></span>cy_rtos_thread_get_handle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_get_handle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *&#160;</td>
          <td class="paramname"><em>thread</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get current thread handle. </p>
<p >Returns the unique thread handle of the current running thread.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">thread</td><td>Handle of the current running thread</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread join request. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="ga48c657566a9d85d8003c8c8784907c0d" name="ga48c657566a9d85d8003c8c8784907c0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga48c657566a9d85d8003c8c8784907c0d">&#9670;&nbsp;</a></span>cy_rtos_thread_wait_notification()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_wait_notification </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga141349b315f2266d5e0e8b8566eb608b">cy_time_t</a>&#160;</td>
          <td class="paramname"><em>timeout_ms</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Suspend current thread until notification is received. </p>
<p >This function suspends the execution of current thread until it is notified by <a class="el" href="group__group__abstraction__rtos__threads.html#gaa29bd111d0e71594887f83e8a2ef5874">cy_rtos_thread_set_notification</a> from another thread or ISR, or timed out with specify timeout value</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout_ms</td><td>Maximum number of milliseconds to wait Use the <a class="el" href="group__group__abstraction__rtos__common.html#gab31d8535128df9506a4220c2b1f41a60">CY_RTOS_NEVER_TIMEOUT</a> constant to wait forever.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread wait. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#gafc6a1c6f563521d6c5555027d5d7bde8">CY_RTOS_TIMEOUT</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
<a id="gaa29bd111d0e71594887f83e8a2ef5874" name="gaa29bd111d0e71594887f83e8a2ef5874"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa29bd111d0e71594887f83e8a2ef5874">&#9670;&nbsp;</a></span>cy_rtos_thread_set_notification()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_set_notification </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *&#160;</td>
          <td class="paramname"><em>thread</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the thread notification for a thread. </p>
<p >This function sets the thread notification for the target thread. The target thread waiting for the notification to be set will resume from suspended state.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the target thread</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of thread wait. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga3b106a6fcedd377b05769dbf2b6f97a9">CY_RTOS_BAD_PARAM</a>] </dd></dl>

</div>
</div>
<a id="ga69c4cc657945f9cc8aaf1ee3667fd004" name="ga69c4cc657945f9cc8aaf1ee3667fd004"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga69c4cc657945f9cc8aaf1ee3667fd004">&#9670;&nbsp;</a></span>cy_rtos_thread_get_name()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cy_rslt_t cy_rtos_thread_get_name </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3">cy_thread_t</a> *&#160;</td>
          <td class="paramname"><em>thread</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>thread_name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the name of a thread. </p>
<p >This function returns the name of the target thread</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">thread</td><td>Handle of the target thread</td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">thread_name</td><td>Will be updated to point to the thread name. Can return NULL in the case of no thread name.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of getting the thread name. [<a class="el" href="group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e">CY_RSLT_SUCCESS</a>, <a class="el" href="group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647">CY_RTOS_GENERAL_ERROR</a>] </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>(abstraction-rtos)</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
